<template>
    <div style="border: 1px solid #ccc;">
        <Toolbar
            style="border-bottom: 1px solid #ccc"
            :editor="editor"
            :defaultConfig="toolbarConfig"
            :mode="mode"
        />
        <Editor
            style="height: 500px; overflow-y: hidden;"
            v-model="html"
            :defaultConfig="editorConfig"
            :mode="mode"
            @onCreated="onCreated"
        />
    </div>
</template>

<script>
// npm install @wangeditor/editor-for-vue --save
import { Editor, Toolbar } from '@wangeditor/editor-for-vue'

export default {
    components: { Editor, Toolbar },
    data() {
        return {
            editor: null,
            html: '<p>hello</p>',
            toolbarConfig: { },
            editorConfig: { 
              placeholder: '请输入内容...',
              MENU_CONF:{
                uploadImage:{
                  server: 'https://api.avuejs.com/imgupload',
                  // fieldName:"name",
                  // onSuccess(file, res) {          // JS 语法
                  //     console.log(`${file.name} 上传成功`, res)
                  // },
                  // // onFailed(file: File, res: any) {   // TS 语法
                  // onFailed(file, res) {           // JS 语法
                  //     console.log(`${file.name} 上传失败`, res)
                  // },
                  // customInsert(res: any, insertFn: InsertFnType) {  // TS 语法
                  customInsert(res,insertFn) {                  // JS 语法
                      // res 即服务端的返回结果
                    console.log(res);
                      // 从 res 中找到 url alt href ，然后插入图片
                      insertFn(res.data.url, res.data.name, res.data.url)
                  },
                },
                uploadVideo:{
                  server: 'https://api.avuejs.com/imgupload',
                  customInsert(res,insertFn) {                  // JS 语法
                      // res 即服务端的返回结果
                    console.log(res);
                      // 从 res 中找到 url alt href ，然后插入图片
                      insertFn(res.data.url, res.data.name, res.data.url)
                  },
                }
              }
              
            },
            mode: 'default', // or 'simple'
        }
    },
    methods: {
        onCreated(editor) {
            this.editor = Object.seal(editor) // 一定要用 Object.seal() ，否则会报错
        },
    },
    mounted() {
        // 模拟 ajax 请求，异步渲染编辑器
        setTimeout(() => {
            this.html = '<p>模拟 Ajax 异步设置内容 HTML</p>'
        console.log(this.editor);
        }, 1500)
    },
    beforeDestroy() {
        const editor = this.editor
        if (editor == null) return
        editor.destroy() // 组件销毁时，及时销毁编辑器
    }
}
</script>

<style src="@wangeditor/editor/dist/css/style.css"></style>
<style lang="scss" scoped>

</style>